package com.atguigu.gmall.index.annotation;

import org.springframework.transaction.annotation.Transactional;

import java.lang.annotation.*;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface GmallCahe {
    /**
     * 缓存数据的key的前缀
     */
    String prefix() default "gmall:";

    /**
     * 分布式锁的名称前缀
     */
    String lockName() default "gmall:lock:";

    /**
     * 缓存过期的时间,单位：min
     * 默认5min
     */
    int timeout() default 5;

    /**
     * 为了防止雪崩，给缓存时间添加随机值
     * 默认是5min
     */
    int random() default 5;
}
